import java.util.ArrayList;
import java.util.List;

public class demo2 {
    List<List<Integer>>list;
    List<Integer>path;
    public List<List<Integer>> subsets(int[] nums) {
        list=new ArrayList<>();
        path=new ArrayList<>();
        dfs(nums,0);
        return list;
    }
    public void dfs(int []nums,int i){
        list.add(new ArrayList<>(path));
        for(int j=i;j<nums.length;j++){
            path.add(nums[j]);
            dfs(nums,j+1);
            path.remove(path.size()-1);
        }
        return;
    }
}
